package cn.tedu.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class Test2 {
    //使用反射机制调用方法
    //获取类

    public static void main(String[] args) throws Exception{
        Class<?> clazz = Class.forName("cn.tedu.reflect.SomeService");
        //获取方法
        Method doSomeMethod = clazz.getDeclaredMethod("doSome", String.class, int.class);

        // 调用方法
        // 四要素：调用哪个对象、哪个方法、传什么参数、返回什么值。
        // obj 要素：哪个对象
        // doSomeMethod 要素：哪个方法
        // "李四", 250 要素：传什么参数
        // retValue 要素：返回什么值。
        /*Constructor<?> declaredConstructor = clazz.getDeclaredConstructor();
        Object obj = declaredConstructor.newInstance();*/
        Object obj = clazz.newInstance();//过时的方法

        Object retValue = doSomeMethod.invoke(obj, "李四", 250);
        System.out.println(retValue);


    }
}
